package com.itheima.tezheng;

import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;

/*
可见性
mythread2  将钱 修改了
但是mythread1 知不知道  不知道

 */
public class Demo02 {
    public static void main(String[] args) {
        MyThread1 t1 = new MyThread1();
        MyThread2 t2 = new MyThread2();
        t1.start();
        t2.start();
    }
}


class  Money {
    public static volatile int money=100000;
}
//晓彤
class MyThread1 extends Thread{
    Object obj= new Object();
    Lock lock= new ReentrantLock();
    @Override
    public void run() {

            while (Money.money==100000){
              /*  synchronized (obj){//加锁 加锁之前 要求 本地变量必须强制刷新远程副本的值



                    //释放锁   在释放锁之前 要求本地变量必须将自己当前的值 刷新给远程副本
                }*/
             /* lock.lock();
              lock.unlock();*/
            }

        System.out.println("我的钱怎么不对了啊");

    }
}
//小鹿
class MyThread2 extends Thread{
    @Override
    public void run() {
        try {
            Thread.sleep(10);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        Money.money=90000;
    }
}